Fix for bug introduced by cset 14859:a9aa7c29eda8 - implement IOREQ_TYPE_SUB
authorSteven Hand <steven@xensource.com>
Tue, 17 Apr 2007 14:41:44 +0000 (15:41 +0100)
committerSteven Hand <steven@xensource.com>
Tue, 17 Apr 2007 14:41:44 +0000 (15:41 +0100)
for intercepted mmio access too.

Signed-off-by: Steven Hand <steven@xensource.com>
xen/arch/x86/hvm/intercept.c

index 91749b676bb4a68d691c8954f2333244ca974cfe..e9712ce79139551b39cb3941efc7384bbde46178 100644 (file)
@@ -148,6 +148,15 @@ static inline void hvm_mmio_access(struct vcpu *v,
         p->data = tmp1;
         break;
 
+    case IOREQ_TYPE_SUB:
+        tmp1 = read_handler(v, p->addr, p->size);
+        if ( p->dir == IOREQ_WRITE ) {
+            tmp2 = tmp1 - (unsigned long) p->data;
+            write_handler(v, p->addr, p->size, tmp2);
+        }
+        p->data = tmp1;
+        break;
+
     default:
         printk("hvm_mmio_access: error ioreq type %x\n", p->type);
         domain_crash_synchronous();